Static timing analysis (STA) is used to analyze, debug, and validate the time performance of a chip during the design phase and in advance of actual fabrication. The timing of the chip is simulated to determine if it meets the timing constraints to achieve timing closure and, therefore, is likely to operate properly if fabricated in accordance with the tested design.
Deterministic STA (DSTA) propagates timing quantities, such as arrival times, required arrival times, and slews, along with any other timing related quantities (guard times, adjusts, asserts, etc.), as single valued deterministic data. Each individual timing run covers a single corner in a space of process variations. A corner is a set of input values for variables that may include temperature of the circuit, input voltage, and various manufacturing variables of an integrated circuit. In order to evaluate the impact that a given variable will have on timing, multiple DSTA timing runs must be executed with variables that affect timing set at several maximum and minimum corners, such as high and low temperature, high and low voltages, and various processing conditions. For example, DSTA timing runs may compare a corner characterized by a combination of high input voltage, a high operating temperature, and the worst manufacturing variables with a corner characterized by a combination of a low input voltage, a low operating temperature, and the best manufacturing variables. As a check of the performance of the integrated circuit design, many or all of the corners may be run and the integrated circuit design adjusted until all of the corners pass the timing tests.
To maintain timing closure, DSTA limits the actual delay for any path by ensuring that the actual delay is always faster than a slow test limit and always slower than a fast test limit. The difference between the actual delay and these test limits is called a timing margin. Minimization of the timing margin provides higher performance and lower power for the same technology. However, the timing margin includes many diverse sources of delay variation.
In DSTA, the cell and wire delay components of each path are treated independently from all other paths. The worst case is found and included in the timing margin. In addition, the modeling of a cell and wire delay along any arbitrary path contains errors in the form of inaccuracies and simplifications. For DSTA, the extremes of these errors are used when applying delays and calculating delays. As a result, this further increases the required margin, which is contrary to the desired trend toward minimization. The environment conditions that the chip can experience in the final end-use application, such as the largest and smallest voltage, the highest and lowest temperature, an estimate of the maximum lifetime, etc., have an increase by the maximum possible uncertainty in the estimation, and the delay model sensitivity to these effects is also included in the margin setting. Manufacturing process variations lead to device and interconnect variations with a multitude of different variable variations, like device channel length, gate capacitance, and interconnect wire capacitance and resistance, which all impact the delay of a path on the chip. For each of these variables, a pessimistic maximum and minimum range of variation is assumed and is added into the timing margin. As a result, the combination of these sources of delay estimation sets an overly pessimistic timing picture.
When investigated, the main reason for a timing fail is exposed in the sensitivity of the timing test to the source of variation, whether source of variation is a state dependent effect, an environment variable, or a process variation. Sensitivities are calculated in a block-based statistical static timing analysis (SSTA) approach at every timing path, cell, and interconnect, and are accumulated along a path and exposed at the final timing test. The relative size of these sensitivities indicates which of these variations is most critical, and can be the main contributor or cause of hardware that is unlikely to operate properly.
A single large sensitivity indicates a serious problem that needs to be corrected in the design. Evenly distributed small sensitivities reflect design robustness towards variations, so the accumulated pessimism is too large. This effect is included in SSTA when seeking for a worst case of a joint probability distribution of all statistical variables. However, not all origins of the timing margins can be part of timing calculations in SSTA. For example, the state dependent effects are application specific and, as a result, do not have a distribution from chip to chip. Modeling inaccuracy and simplification may be consistent for all cells and every chip has to work on all environment conditions. So, a large margin is left beyond the capabilities of SSTA.
Further, to apply SSTA, the process must be modeled in a statistical fashion. For every process variable, a distribution must be specified and verified with hardware manufactured under the same conditions the new chip may experience. This is an extremely difficult task, and imposes expensive restrictions on the manufacturing process that may limit process changes.
DSTA only predicts a single corner of the space of process variations with each timing run. Consequently, in order to achieve timing closure and assuming N variables (i.e., sources of variation) and two corners per variable, up to 2N corners may have to be analyzed by individual DSTA timing runs. Unfortunately, this may lead to an excessive and impractical number of timing runs to analyze, debug, and validate a chip design.
Accordingly, there is a need for an improved method during DSTA that overcomes these and other deficiencies of conventional DSTA.